let {app} = require('./base.js')
let {Employees} = require('../data/index')

// 定义一个中间件
// 所有的请求，首先会进过use中间件，
// 比如：设置统一的资源，或者验证用户的权限等等操作，都要放到use中间件中执行
app.use((req, res, next) => {
    //设置响应头，表示允许客户端跨域请求
    res.setHeader("Access-Control-Allow-Origin", "*");
    //设置响应头，表示允许客户端添加请求头信息
    res.setHeader("Access-Control-Allow-Headers", "*");
    //next()方法，表示下一步
    next();
  });

//  查询全部员工信息
app.get('/getAllemployees',async(req,res)=>{
    let emps = await Employees.find()
    res.json(emps)
})
// 添加员工
app.post('/addAllemployees',(req,res)=>{
    // req是请求对象，
    // res是响应对象
    let {name, age ,sex} =req.body
    Employees.create({
        name:name,
        age:age,
        sex:sex
    }).then(()=>{
        res.json(true)
    }).catch(()=>{
        res.json(false)
    })
})

// 根据id查询员工信息
app.get('/getOneemployees', async(req,res)=>{
    let  {_id} = req.query
    // 定义一个空对象接收根据id查询到的学生信息
    let emp = {}
    if(_id){
        emp = await Employees.findOne({_id})
    }
    res.json(emp)
})

// 删除员工
app.post('/deleteemployees',async(req,res)=>{
    //query属性获取的是请求参数，比如：?id=123&name=abc&age=33
  // 获取学生的id值
    let {_id} = req.body
    Employees.deleteOne({_id}).then(()=>{
        res.json(true)
    }).catch(()=>{
        res.json(false)
    })
})

//修改
app.post('/updateemployees',async(req,res)=>{
    // 获取参数
    let {name ,age, sex ,_id} = req.body
    Employees.updateOne({_id},{name,age,sex}).then(()=>{
        res.json(true)
    }).catch(()=>{
        res.json(false)
    })
})